The Transform menu’s Program Editor menu item lets you define your own transformation program. It can use variables that are in one or more existing data objects, use variables that are not in any data object, compute new variables from old ones, and place the new ones in a new data object. You can also create a new data object that does not involve variables in an old data object.

The menu item gives you the choice of using the Listener window to enter the calculations interactively, or of using the LispEdit program editor to create a script which can be run with the editor and/or saved for later use. The script can be run by using LispEdit's Eval menu item, or if it is placed in a file, it can be loaded and run using ViSta's Load Edit menu item. You can choose to use both approaches simultaneously, since it can be useful to use the listener to test statements in the program and the editor to construct and save the program. 

It is important to note that the data objects which have been defined during the analysis session, and the variables in these data objects, are available to you (i.e., are bound in the local environment). Consequently, the menu item informs you of the data objects and variables currently available. These objects and variables are represented by the following symbols:

$          the current data object (the one whose icon is high-lighted).
$data	   the names for all the data objects that have been defined.
$vars	   the names of all variables in $.
$data-vars the names of all variables in all data objects.
$desk-vars the names of all variables that are not in data objects.

Note that the $data-vars names are two-level names consisting of the name of the data object and the name of the variable, separated by a dash.

All $vars and $data$vars are available for use in your program.
